#!/bin/bash

apt-get update
apt-get upgrade
apt-get dist-upgrade

apt-get autoremove

#方法一、如果你知道要删除软件的具体名称，可以使用
#sudo apt-get remove --purge 软件名称
#sudo apt-get autoremove --purge 软件名称

#方法二、如果不知道要删除软件的具体名称，可以使用
#dpkg --get-selections | grep '软件相关名称'
#sudo apt-get purge 一个带core的package，如果没有带core的package，则是情况而定。

#清理残留数据
#dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P

#apt-get的卸载相关的命令有remove/purge/autoremove/clean/autoclean等。具体来说：

#apt-get purge / apt-get --purge remove
#删除已安装包（不保留配置文件)。
#如软件包a，依赖软件包b，则执行该命令会删除a，而且不保留配置文件

#apt-get autoremove
#删除为了满足依赖而安装的，但现在不再需要的软件包（包括已安装包），保留配置文件。

#apt-get remove
#删除已安装的软件包（保留配置文件），不会删除依赖软件包，且保留配置文件。

apt-get autoclean
#APT的底层包是dpkg, 而dpkg 安装Package时, 会将 *.deb 放在 /var/cache/apt/archives/中，apt-get autoclean 只会删除 /var/cache/apt/archives/ 已经过期的deb。

#apt-get clean
#使用 apt-get clean 会将 /var/cache/apt/archives/ 的 所有 deb 删掉，可以理解为 rm /var/cache/apt/archives/*.deb。

######################
#那么如何彻底卸载软件呢？ 
# 删除软件及其配置文件
#apt-get --purge remove <package>
# 删除没用的依赖包
#apt-get autoremove <package>
# 此时dpkg的列表中有“rc”状态的软件包，可以执行如下命令做最后清理：
#dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P
#当然如果要删除暂存的软件安装包，也可以再使用clean命令。
######################

